home *** CD-ROM | disk | FTP | other *** search
- package com.extensibility.xml;
-
- import com.extensibility.util.Debug;
- import java.text.MessageFormat;
- import java.util.Date;
- import java.util.Enumeration;
- import java.util.Hashtable;
-
- public class AuditTrail {
- public static final int NO_CHANGE = 0;
- public static final int INSERTED = 1;
- public static final int UPDATED = 2;
- public static final int REMOVED = 3;
- Hashtable originals = new Hashtable();
-
- public void setup(Enumeration var1) {
- if (this.originals.size() > 0) {
- this.originals = new Hashtable();
- }
-
- while(var1.hasMoreElements()) {
- BaseDeclaration var2 = (BaseDeclaration)var1.nextElement();
- this.originals.put(var2, var2.getSource());
- }
-
- }
-
- public DeclChange getChange(BaseDeclaration var1) {
- DeclChange var2 = new DeclChange((AuditTrail)null);
- var2.orgSource = (String)this.originals.get(var1);
- if (var2.orgSource == null) {
- var2.type = 1;
- } else if (var2.orgSource.equals(var1.getSource())) {
- var2.type = 0;
- } else {
- var2.type = 2;
- }
-
- return var2;
- }
-
- public String getChange(BaseDeclaration var1, String var2, String var3, String var4) {
- DeclChange var5 = this.getChange(var1);
- if (var5.type == 0) {
- return null;
- } else {
- Object[] var7 = new Object[]{new Date(), var5.orgSource};
- if (var5.type == 1) {
- return (new MessageFormat(var2)).format(var7);
- } else if (var5.type == 2) {
- return (new MessageFormat(var3)).format(var7);
- } else if (var5.type == 3) {
- return (new MessageFormat(var4)).format(var7);
- } else {
- Debug.assert(false, "unknown change type");
- return null;
- }
- }
- }
-
- public void logChanges(Enumeration var1, String var2, String var3, String var4) {
- while(var1.hasMoreElements()) {
- BaseDeclaration var5 = (BaseDeclaration)var1.nextElement();
- String var6 = this.getChange(var5, var2, var3, var4);
- if (var6 != null) {
- var5.addComment(new Comment("CHANGES", var6));
- }
- }
-
- }
- }
-